package com.zw.a.basic.a15.demo01_junit;


import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

//案例: 演示Junit的用法.
/*
    Junit单元测试详解:
        作用:
            简单理解为, 就是用来做类似于main()方法的事儿, 可以不把代码写到main方法中, 从而直接执行.
         步骤:
            1. 导包.
            2. 在需要进行Junit单元测试的方法上加上注解:  @Test, 或者@After, @Before
         注意事项:
            要进行Junit单元测试的方法必须是: 无参无返回值的非静态方法.
         细节:
            1. 需要进行Junit的方法, 上边必须写: @Test注解, 这类方法叫: 测试方法.
            2. @Before作用:  被它修饰方法的方法, 会在 测试方法 之前, 自动调用.
            3. @After作用:   被它修饰方法的方法, 会在 测试方法 之后, 自动调用.
 */
public class Demo03 {
    private FileInputStream fis;
    private FileOutputStream fos;

    @Before
    public void init() throws FileNotFoundException {
        //对对象初始化
        if (fis == null) {
            fis = new FileInputStream("D:\\ClassDemo\\workspace0520\\JavaSE\\day15\\data\\1.txt");
        }

        if (fos == null) {
            fos = new FileOutputStream("D:\\ClassDemo\\workspace0520\\JavaSE\\day15\\data\\2.txt");
        }
    }

    @Test
    public void testShow2() throws IOException {
        int len = 0;
        while ((len = fis.read()) != -1) {
            fos.write(len);
        }
    }

    @After
    public void testShow3() throws IOException {
        System.out.println("一般是用来释放资源的");
        fis.close();
        fos.close();
    }

}
